package com.cloud.xtools.common.validator.annotation;

import com.cloud.xtools.common.validator.FieldUniqueValidator;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;

/**
 * @author Daixinguo
 */
@Documented
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = FieldUniqueValidator.class)
public @interface FieldUnique {
    Class<?> entity();
    String field();
    String message() default "Field value already exists in the database";
    // 忽略指定字段作为查询条件的数据进行检查，如：id，配合 path 参数中 id 的值（如：id 值为 1）检查唯一性时会忽略数据库表中 id = 1 的数据。通常用于更新数据时使用
    String ignoreField() default "";
    Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};
}
